package pe.com.bbva.configuracion.bo.impl;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import pe.com.bbva.configuracion.bo.TipoArchivoBO;
import pe.com.bbva.configuracion.domain.ConfArchivo;
import pe.com.bbva.configuracion.domain.TipoArchivo;
import pe.com.bbva.mantenimiento.bo.TablaBO;
import pe.com.bbva.mantenimiento.domain.Tabla;
import pe.com.bbva.util.Constantes;
import pe.com.stefanini.core.bo.GenericBOImpl;
import pe.com.stefanini.core.bo.Grid;
import pe.com.stefanini.core.exceptions.BOException;
import pe.com.stefanini.core.exceptions.DAOException;

@Component("tipoArchivoBO")
@SuppressWarnings({"rawtypes","unchecked"})
public class TipoArchivoBOImpl extends GenericBOImpl<TipoArchivo> implements TipoArchivoBO {

	Logger logger = Logger.getLogger(this.getClass());
	
	@Resource
	private TablaBO tablaBO;
	private String codigoAntiguo;

	
	@Override
	public Grid<TipoArchivo> findToGridArchivo(List<ConfArchivo> equipos, String order, int page, int rows) throws BOException, DAOException {
		String where="where ";	
		List<Tabla> listaTablas= tablaBO.findArchivoCarga();
		List<TipoArchivo> lista = new ArrayList<TipoArchivo>();
		for(Tabla tabla: listaTablas){
			TipoArchivo tipoArchivo = new TipoArchivo();
			tipoArchivo.setCodigo(tabla.getCodigo());
			tipoArchivo.setDescripcion(tabla.getDescripcion());
			tipoArchivo.setEstampacion(tabla.getAbreviado());
			tipoArchivo.setRetorno(tabla.getAbreviado());
			for(ConfArchivo equipo:equipos){
				if(tabla.getId().equals(equipo.getEquipo().getId())){
					tipoArchivo.setObligatorio(equipo.getObligatorio());
					tipoArchivo.setSeleccionado(equipo.getEstado());
					break;
				}
			}
			if(tipoArchivo.getSeleccionado()==null){
				tipoArchivo.setObligatorio(Constantes.ESTADO_INACTIVO);
				tipoArchivo.setSeleccionado(Constantes.ESTADO_INACTIVO);
			}
			lista.add(tipoArchivo);
		}
	    return super.findToGridList(lista,where, " order by "+order,page,rows);
	}


	
}